home *** CD-ROM | disk | FTP | other *** search
/ Ultra Pack / UltraComputing Partner Applications.iso / SunLabs / tclTK / src / tk4.0 / tk.h < prev    next >
C/C++ Source or Header  |  1995-06-09  |  51KB  |  1,284 lines

  1. /*
  2.  * tk.h --
  3.  *
  4.  *    Declarations for Tk-related things that are visible
  5.  *    outside of the Tk module itself.
  6.  *
  7.  * Copyright (c) 1989-1994 The Regents of the University of California.
  8.  * Copyright (c) 1994 The Australian National University.
  9.  * Copyright (c) 1994-1995 Sun Microsystems, Inc.
  10.  *
  11.  * See the file "license.terms" for information on usage and redistribution
  12.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  13.  *
  14.  * @(#) tk.h 1.164 95/06/09 10:18:27
  15.  */
  16.  
  17. #ifndef _TK
  18. #define _TK
  19.  
  20. #define TK_VERSION "4.0"
  21. #define TK_MAJOR_VERSION 4
  22. #define TK_MINOR_VERSION 0
  23.  
  24. #ifndef _TCL
  25. #include <tcl.h>
  26. #endif
  27. #ifndef _XLIB_H
  28. #include <X11/Xlib.h>
  29. #endif
  30. #ifdef __STDC__
  31. #include <stddef.h>
  32. #endif
  33.  
  34. /*
  35.  * Decide whether or not to use input methods.
  36.  */
  37.  
  38. #ifdef XNQueryInputStyle
  39. #define TK_USE_INPUT_METHODS
  40. #endif
  41.  
  42. /*
  43.  * Dummy types that are used by clients:
  44.  */
  45.  
  46. typedef struct Tk_BindingTable_ *Tk_BindingTable;
  47. typedef struct Tk_Canvas_ *Tk_Canvas;
  48. typedef struct Tk_ErrorHandler_ *Tk_ErrorHandler;
  49. typedef struct Tk_Image__ *Tk_Image;
  50. typedef struct Tk_ImageMaster_ *Tk_ImageMaster;
  51. typedef struct Tk_TimerToken_ *Tk_TimerToken;
  52. typedef struct Tk_Window_ *Tk_Window;
  53. typedef struct Tk_3DBorder_ *Tk_3DBorder;
  54.  
  55. /*
  56.  * Additional types exported to clients.
  57.  */
  58.  
  59. typedef char *Tk_Uid;
  60.  
  61. /*
  62.  * Structure used to specify how to handle argv options.
  63.  */
  64.  
  65. typedef struct {
  66.     char *key;        /* The key string that flags the option in the
  67.              * argv array. */
  68.     int type;        /* Indicates option type;  see below. */
  69.     char *src;        /* Value to be used in setting dst;  usage
  70.              * depends on type. */
  71.     char *dst;        /* Address of value to be modified;  usage
  72.              * depends on type. */
  73.     char *help;        /* Documentation message describing this option. */
  74. } Tk_ArgvInfo;
  75.  
  76. /*
  77.  * Legal values for the type field of a Tk_ArgvInfo: see the user
  78.  * documentation for details.
  79.  */
  80.  
  81. #define TK_ARGV_CONSTANT        15
  82. #define TK_ARGV_INT            16
  83. #define TK_ARGV_STRING            17
  84. #define TK_ARGV_UID            18
  85. #define TK_ARGV_REST            19
  86. #define TK_ARGV_FLOAT            20
  87. #define TK_ARGV_FUNC            21
  88. #define TK_ARGV_GENFUNC            22
  89. #define TK_ARGV_HELP            23
  90. #define TK_ARGV_CONST_OPTION        24
  91. #define TK_ARGV_OPTION_VALUE        25
  92. #define TK_ARGV_OPTION_NAME_VALUE    26
  93. #define TK_ARGV_END            27
  94.  
  95. /*
  96.  * Flag bits for passing to Tk_ParseArgv:
  97.  */
  98.  
  99. #define TK_ARGV_NO_DEFAULTS        0x1
  100. #define TK_ARGV_NO_LEFTOVERS        0x2
  101. #define TK_ARGV_NO_ABBREV        0x4
  102. #define TK_ARGV_DONT_SKIP_FIRST_ARG    0x8
  103.  
  104. /*
  105.  * Structure used to describe application-specific configuration
  106.  * options:  indicates procedures to call to parse an option and
  107.  * to return a text string describing an option.
  108.  */
  109.  
  110. typedef int (Tk_OptionParseProc) _ANSI_ARGS_((ClientData clientData,
  111.     Tcl_Interp *interp, Tk_Window tkwin, char *value, char *widgRec,
  112.     int offset));
  113. typedef char *(Tk_OptionPrintProc) _ANSI_ARGS_((ClientData clientData,
  114.     Tk_Window tkwin, char *widgRec, int offset,
  115.     Tcl_FreeProc **freeProcPtr));
  116.  
  117. typedef struct Tk_CustomOption {
  118.     Tk_OptionParseProc *parseProc;    /* Procedure to call to parse an
  119.                      * option and store it in converted
  120.                      * form. */
  121.     Tk_OptionPrintProc *printProc;    /* Procedure to return a printable
  122.                      * string describing an existing
  123.                      * option. */
  124.     ClientData clientData;        /* Arbitrary one-word value used by
  125.                      * option parser:  passed to
  126.                      * parseProc and printProc. */
  127. } Tk_CustomOption;
  128.  
  129. /*
  130.  * Structure used to specify information for Tk_ConfigureWidget.  Each
  131.  * structure gives complete information for one option, including
  132.  * how the option is specified on the command line, where it appears
  133.  * in the option database, etc.
  134.  */
  135.  
  136. typedef struct Tk_ConfigSpec {
  137.     int type;            /* Type of option, such as TK_CONFIG_COLOR;
  138.                  * see definitions below.  Last option in
  139.                  * table must have type TK_CONFIG_END. */
  140.     char *argvName;        /* Switch used to specify option in argv.
  141.                  * NULL means this spec is part of a group. */
  142.     char *dbName;        /* Name for option in option database. */
  143.     char *dbClass;        /* Class for option in database. */
  144.     char *defValue;        /* Default value for option if not
  145.                  * specified in command line or database. */
  146.     int offset;            /* Where in widget record to store value;
  147.                  * use Tk_Offset macro to generate values
  148.                  * for this. */
  149.     int specFlags;        /* Any combination of the values defined
  150.                  * below;  other bits are used internally
  151.                  * by tkConfig.c. */
  152.     Tk_CustomOption *customPtr;    /* If type is TK_CONFIG_CUSTOM then this is
  153.                  * a pointer to info about how to parse and
  154.                  * print the option.  Otherwise it is
  155.                  * irrelevant. */
  156. } Tk_ConfigSpec;
  157.  
  158. /*
  159.  * Type values for Tk_ConfigSpec structures.  See the user
  160.  * documentation for details.
  161.  */
  162.  
  163. #define TK_CONFIG_BOOLEAN    1
  164. #define TK_CONFIG_INT        2
  165. #define TK_CONFIG_DOUBLE    3
  166. #define TK_CONFIG_STRING    4
  167. #define TK_CONFIG_UID        5
  168. #define TK_CONFIG_COLOR        6
  169. #define TK_CONFIG_FONT        7
  170. #define TK_CONFIG_BITMAP    8
  171. #define TK_CONFIG_BORDER    9
  172. #define TK_CONFIG_RELIEF    10
  173. #define TK_CONFIG_CURSOR    11
  174. #define TK_CONFIG_ACTIVE_CURSOR    12
  175. #define TK_CONFIG_JUSTIFY    13
  176. #define TK_CONFIG_ANCHOR    14
  177. #define TK_CONFIG_SYNONYM    15
  178. #define TK_CONFIG_CAP_STYLE    16
  179. #define TK_CONFIG_JOIN_STYLE    17
  180. #define TK_CONFIG_PIXELS    18
  181. #define TK_CONFIG_MM        19
  182. #define TK_CONFIG_WINDOW    20
  183. #define TK_CONFIG_CUSTOM    21
  184. #define TK_CONFIG_END        22
  185.  
  186. /*
  187.  * Macro to use to fill in "offset" fields of Tk_ConfigInfos.
  188.  * Computes number of bytes from beginning of structure to a
  189.  * given field.
  190.  */
  191.  
  192. #ifdef offsetof
  193. #define Tk_Offset(type, field) ((int) offsetof(type, field))
  194. #else
  195. #define Tk_Offset(type, field) ((int) ((char *) &((type *) 0)->field))
  196. #endif
  197.  
  198. /*
  199.  * Possible values for flags argument to Tk_ConfigureWidget:
  200.  */
  201.  
  202. #define TK_CONFIG_ARGV_ONLY    1
  203.  
  204. /*
  205.  * Possible flag values for Tk_ConfigInfo structures.  Any bits at
  206.  * or above TK_CONFIG_USER_BIT may be used by clients for selecting
  207.  * certain entries.  Before changing any values here, coordinate with
  208.  * tkConfig.c (internal-use-only flags are defined there).
  209.  */
  210.  
  211. #define TK_CONFIG_COLOR_ONLY        1
  212. #define TK_CONFIG_MONO_ONLY        2
  213. #define TK_CONFIG_NULL_OK        4
  214. #define TK_CONFIG_DONT_SET_DEFAULT    8
  215. #define TK_CONFIG_OPTION_SPECIFIED    0x10
  216. #define TK_CONFIG_USER_BIT        0x100
  217.  
  218. /*
  219.  * Bits to pass to Tk_CreateFileHandler to indicate what sorts
  220.  * of events are of interest:
  221.  */
  222.  
  223. #define TK_READABLE    1
  224. #define TK_WRITABLE    2
  225. #define TK_EXCEPTION    4
  226.  
  227. /*
  228.  * Special return value from Tk_FileProc2 procedures indicating that
  229.  * an event was successfully processed.
  230.  */
  231.  
  232. #define TK_FILE_HANDLED -1
  233.  
  234. /*
  235.  * Flag values to pass to Tk_DoOneEvent to disable searches
  236.  * for some kinds of events:
  237.  */
  238.  
  239. #define TK_DONT_WAIT        1
  240. #define TK_X_EVENTS        2
  241. #define TK_FILE_EVENTS        4
  242. #define TK_TIMER_EVENTS        8
  243. #define TK_IDLE_EVENTS        0x10
  244. #define TK_ALL_EVENTS        0x1e
  245.  
  246. /*
  247.  * Priority levels to pass to Tk_AddOption:
  248.  */
  249.  
  250. #define TK_WIDGET_DEFAULT_PRIO    20
  251. #define TK_STARTUP_FILE_PRIO    40
  252. #define TK_USER_DEFAULT_PRIO    60
  253. #define TK_INTERACTIVE_PRIO    80
  254. #define TK_MAX_PRIO        100
  255.  
  256. /*
  257.  * Relief values returned by Tk_GetRelief:
  258.  */
  259.  
  260. #define TK_RELIEF_RAISED    1
  261. #define TK_RELIEF_FLAT        2
  262. #define TK_RELIEF_SUNKEN    4
  263. #define TK_RELIEF_GROOVE    8
  264. #define TK_RELIEF_RIDGE        16
  265.  
  266. /*
  267.  * "Which" argument values for Tk_3DBorderGC:
  268.  */
  269.  
  270. #define TK_3D_FLAT_GC        1
  271. #define TK_3D_LIGHT_GC        2
  272. #define TK_3D_DARK_GC        3
  273.  
  274. /*
  275.  * Special EnterNotify/LeaveNotify "mode" for use in events
  276.  * generated by tkShare.c.  Pick a high enough value that it's
  277.  * unlikely to conflict with existing values (like NotifyNormal)
  278.  * or any new values defined in the future.
  279.  */
  280.  
  281. #define TK_NOTIFY_SHARE        20
  282.  
  283. /*
  284.  * Enumerated type for describing a point by which to anchor something:
  285.  */
  286.  
  287. typedef enum {
  288.     TK_ANCHOR_N, TK_ANCHOR_NE, TK_ANCHOR_E, TK_ANCHOR_SE,
  289.     TK_ANCHOR_S, TK_ANCHOR_SW, TK_ANCHOR_W, TK_ANCHOR_NW,
  290.     TK_ANCHOR_CENTER
  291. } Tk_Anchor;
  292.  
  293. /*
  294.  * Enumerated type for describing a style of justification:
  295.  */
  296.  
  297. typedef enum {
  298.     TK_JUSTIFY_LEFT, TK_JUSTIFY_RIGHT, TK_JUSTIFY_CENTER
  299. } Tk_Justify;
  300.  
  301. /*
  302.  * Each geometry manager (the packer, the placer, etc.) is represented
  303.  * by a structure of the following form, which indicates procedures
  304.  * to invoke in the geometry manager to carry out certain functions.
  305.  */
  306.  
  307. typedef void (Tk_GeomRequestProc) _ANSI_ARGS_((ClientData clientData,
  308.     Tk_Window tkwin));
  309. typedef void (Tk_GeomLostSlaveProc) _ANSI_ARGS_((ClientData clientData,
  310.     Tk_Window tkwin));
  311.  
  312. typedef struct Tk_GeomMgr {
  313.     char *name;            /* Name of the geometry manager (command
  314.                  * used to invoke it, or name of widget
  315.                  * class that allows embedded widgets). */
  316.     Tk_GeomRequestProc *requestProc;
  317.                 /* Procedure to invoke when a slave's
  318.                  * requested geometry changes. */
  319.     Tk_GeomLostSlaveProc *lostSlaveProc;
  320.                 /* Procedure to invoke when a slave is
  321.                  * taken away from one geometry manager
  322.                  * by another.  NULL means geometry manager
  323.                  * doesn't care when slaves are lost. */
  324. } Tk_GeomMgr;
  325.  
  326. /*
  327.  * Result values returned by Tk_GetScrollInfo:
  328.  */
  329.  
  330. #define TK_SCROLL_MOVETO    1
  331. #define TK_SCROLL_PAGES        2
  332. #define TK_SCROLL_UNITS        3
  333. #define TK_SCROLL_ERROR        4
  334.  
  335.  
  336. /*
  337.  *--------------------------------------------------------------
  338.  *
  339.  * Macros for querying Tk_Window structures.  See the
  340.  * manual entries for documentation.
  341.  *
  342.  *--------------------------------------------------------------
  343.  */
  344.  
  345. #define Tk_Display(tkwin)        (((Tk_FakeWin *) (tkwin))->display)
  346. #define Tk_ScreenNumber(tkwin)        (((Tk_FakeWin *) (tkwin))->screenNum)
  347. #define Tk_Screen(tkwin)        (ScreenOfDisplay(Tk_Display(tkwin), \
  348.     Tk_ScreenNumber(tkwin)))
  349. #define Tk_Depth(tkwin)            (((Tk_FakeWin *) (tkwin))->depth)
  350. #define Tk_Visual(tkwin)        (((Tk_FakeWin *) (tkwin))->visual)
  351. #define Tk_WindowId(tkwin)        (((Tk_FakeWin *) (tkwin))->window)
  352. #define Tk_PathName(tkwin)         (((Tk_FakeWin *) (tkwin))->pathName)
  353. #define Tk_Name(tkwin)            (((Tk_FakeWin *) (tkwin))->nameUid)
  354. #define Tk_Class(tkwin)         (((Tk_FakeWin *) (tkwin))->classUid)
  355. #define Tk_X(tkwin)            (((Tk_FakeWin *) (tkwin))->changes.x)
  356. #define Tk_Y(tkwin)            (((Tk_FakeWin *) (tkwin))->changes.y)
  357. #define Tk_Width(tkwin)            (((Tk_FakeWin *) (tkwin))->changes.width)
  358. #define Tk_Height(tkwin) \
  359.     (((Tk_FakeWin *) (tkwin))->changes.height)
  360. #define Tk_Changes(tkwin)        (&((Tk_FakeWin *) (tkwin))->changes)
  361. #define Tk_Attributes(tkwin)        (&((Tk_FakeWin *) (tkwin))->atts)
  362. #define Tk_IsMapped(tkwin) \
  363.     (((Tk_FakeWin *) (tkwin))->flags & TK_MAPPED)
  364. #define Tk_IsTopLevel(tkwin) \
  365.     (((Tk_FakeWin *) (tkwin))->flags & TK_TOP_LEVEL)
  366. #define Tk_ReqWidth(tkwin)        (((Tk_FakeWin *) (tkwin))->reqWidth)
  367. #define Tk_ReqHeight(tkwin)        (((Tk_FakeWin *) (tkwin))->reqHeight)
  368. #define Tk_InternalBorderWidth(tkwin) \
  369.     (((Tk_FakeWin *) (tkwin))->internalBorderWidth)
  370. #define Tk_Parent(tkwin)        (((Tk_FakeWin *) (tkwin))->parentPtr)
  371. #define Tk_Colormap(tkwin)        (((Tk_FakeWin *) (tkwin))->atts.colormap)
  372.  
  373. /*
  374.  * The structure below is needed by the macros above so that they can
  375.  * access the fields of a Tk_Window.  The fields not needed by the macros
  376.  * are declared as "dummyX".  The structure has its own type in order to
  377.  * prevent applications from accessing Tk_Window fields except using
  378.  * official macros.  WARNING!! The structure definition must be kept
  379.  * consistent with the TkWindow structure in tkInt.h.  If you change one,
  380.  * then change the other.  See the declaration in tkInt.h for
  381.  * documentation on what the fields are used for internally.
  382.  */
  383.  
  384. typedef struct Tk_FakeWin {
  385.     Display *display;
  386.     char *dummy1;
  387.     int screenNum;
  388.     Visual *visual;
  389.     int depth;
  390.     Window window;
  391.     char *dummy2;
  392.     char *dummy3;
  393.     Tk_Window parentPtr;
  394.     char *dummy4;
  395.     char *dummy5;
  396.     char *pathName;
  397.     Tk_Uid nameUid;
  398.     Tk_Uid classUid;
  399.     XWindowChanges changes;
  400.     unsigned int dummy6;
  401.     XSetWindowAttributes atts;
  402.     unsigned long dummy7;
  403.     unsigned int flags;
  404.     char *dummy8;
  405. #ifdef TK_USE_INPUT_METHODS
  406.     XIC dummy9;
  407. #endif /* TK_USE_INPUT_METHODS */
  408.     ClientData *dummy10;
  409.     int dummy11;
  410.     int dummy12;
  411.     char *dummy13;
  412.     char *dummy14;
  413.     ClientData dummy15;
  414.     int reqWidth, reqHeight;
  415.     int internalBorderWidth;
  416.     char *dummy16;
  417. } Tk_FakeWin;
  418.  
  419. /*
  420.  * Flag values for TkWindow (and Tk_FakeWin) structures are:
  421.  *
  422.  * TK_MAPPED:            1 means window is currently mapped,
  423.  *                0 means unmapped.
  424.  * TK_TOP_LEVEL:        1 means this is a top-level window (it
  425.  *                was or will be created as a child of
  426.  *                a root window).
  427.  * TK_ALREADY_DEAD:        1 means the window is in the process of
  428.  *                being destroyed already.
  429.  * TK_NEED_CONFIG_NOTIFY:    1 means that the window has been reconfigured
  430.  *                before it was made to exist.  At the time of
  431.  *                making it exist a ConfigureNotify event needs
  432.  *                to be generated.
  433.  * TK_GRAB_FLAG:        Used to manage grabs.  See tkGrab.c for
  434.  *                details.
  435.  * TK_CHECKED_IC:        1 means we've already tried to get an input
  436.  *                context for this window;  if the ic field
  437.  *                is NULL it means that there isn't a context
  438.  *                for the field.
  439.  * TK_PARENT_DESTROYED:        1 means that the window's parent has already
  440.  *                been destroyed or is in the process of being
  441.  *                destroyed.
  442.  */
  443.  
  444. #define TK_MAPPED        1
  445. #define TK_TOP_LEVEL        2
  446. #define TK_ALREADY_DEAD        4
  447. #define TK_NEED_CONFIG_NOTIFY    8
  448. #define TK_GRAB_FLAG        0x10
  449. #define TK_CHECKED_IC        0x20
  450. #define TK_PARENT_DESTROYED    0x40
  451.  
  452. /*
  453.  *--------------------------------------------------------------
  454.  *
  455.  * Procedure prototypes and structures used for defining new canvas
  456.  * items:
  457.  *
  458.  *--------------------------------------------------------------
  459.  */
  460.  
  461. /*
  462.  * For each item in a canvas widget there exists one record with
  463.  * the following structure.  Each actual item is represented by
  464.  * a record with the following stuff at its beginning, plus additional
  465.  * type-specific stuff after that.
  466.  */
  467.  
  468. #define TK_TAG_SPACE 3
  469.  
  470. typedef struct Tk_Item  {
  471.     int id;                /* Unique identifier for this item
  472.                      * (also serves as first tag for
  473.                      * item). */
  474.     struct Tk_Item *nextPtr;        /* Next in display list of all
  475.                      * items in this canvas.  Later items
  476.                      * in list are drawn on top of earlier
  477.                      * ones. */
  478.     Tk_Uid staticTagSpace[TK_TAG_SPACE];/* Built-in space for limited # of
  479.                      * tags. */
  480.     Tk_Uid *tagPtr;            /* Pointer to array of tags.  Usually
  481.                      * points to staticTagSpace, but
  482.                      * may point to malloc-ed space if
  483.                      * there are lots of tags. */
  484.     int tagSpace;            /* Total amount of tag space available
  485.                      * at tagPtr. */
  486.     int numTags;            /* Number of tag slots actually used
  487.                      * at *tagPtr. */
  488.     struct Tk_ItemType *typePtr;    /* Table of procedures that implement
  489.                      * this type of item. */
  490.     int x1, y1, x2, y2;            /* Bounding box for item, in integer
  491.                      * canvas units. Set by item-specific
  492.                      * code and guaranteed to contain every
  493.                      * pixel drawn in item.  Item area
  494.                      * includes x1 and y1 but not x2
  495.                      * and y2. */
  496.  
  497.     /*
  498.      *------------------------------------------------------------------
  499.      * Starting here is additional type-specific stuff;  see the
  500.      * declarations for individual types to see what is part of
  501.      * each type.  The actual space below is determined by the
  502.      * "itemInfoSize" of the type's Tk_ItemType record.
  503.      *------------------------------------------------------------------
  504.      */
  505. } Tk_Item;
  506.  
  507. /*
  508.  * Records of the following type are used to describe a type of
  509.  * item (e.g.  lines, circles, etc.) that can form part of a
  510.  * canvas widget.
  511.  */
  512.  
  513. typedef int    Tk_ItemCreateProc _ANSI_ARGS_((Tcl_Interp *interp,
  514.             Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
  515.             char **argv));
  516. typedef int    Tk_ItemConfigureProc _ANSI_ARGS_((Tcl_Interp *interp,
  517.             Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
  518.             char **argv, int flags));
  519. typedef int    Tk_ItemCoordProc _ANSI_ARGS_((Tcl_Interp *interp,
  520.             Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
  521.             char **argv));
  522. typedef void    Tk_ItemDeleteProc _ANSI_ARGS_((Tk_Canvas canvas,
  523.             Tk_Item *itemPtr, Display *display));
  524. typedef void    Tk_ItemDisplayProc _ANSI_ARGS_((Tk_Canvas canvas,
  525.             Tk_Item *itemPtr, Display *display, Drawable dst,
  526.             int x, int y, int width, int height));
  527. typedef double    Tk_ItemPointProc _ANSI_ARGS_((Tk_Canvas canvas,
  528.             Tk_Item *itemPtr, double *pointPtr));
  529. typedef int    Tk_ItemAreaProc _ANSI_ARGS_((Tk_Canvas canvas,
  530.             Tk_Item *itemPtr, double *rectPtr));
  531. typedef int    Tk_ItemPostscriptProc _ANSI_ARGS_((Tcl_Interp *interp,
  532.             Tk_Canvas canvas, Tk_Item *itemPtr, int prepass));
  533. typedef void    Tk_ItemScaleProc _ANSI_ARGS_((Tk_Canvas canvas,
  534.             Tk_Item *itemPtr, double originX, double originY,
  535.             double scaleX, double scaleY));
  536. typedef void    Tk_ItemTranslateProc _ANSI_ARGS_((Tk_Canvas canvas,
  537.             Tk_Item *itemPtr, double deltaX, double deltaY));
  538. typedef int    Tk_ItemIndexProc _ANSI_ARGS_((Tcl_Interp *interp,
  539.             Tk_Canvas canvas, Tk_Item *itemPtr, char *indexString,
  540.             int *indexPtr));
  541. typedef void    Tk_ItemCursorProc _ANSI_ARGS_((Tk_Canvas canvas,
  542.             Tk_Item *itemPtr, int index));
  543. typedef int    Tk_ItemSelectionProc _ANSI_ARGS_((Tk_Canvas canvas,
  544.             Tk_Item *itemPtr, int offset, char *buffer,
  545.             int maxBytes));
  546. typedef void    Tk_ItemInsertProc _ANSI_ARGS_((Tk_Canvas canvas,
  547.             Tk_Item *itemPtr, int beforeThis, char *string));
  548. typedef void    Tk_ItemDCharsProc _ANSI_ARGS_((Tk_Canvas canvas,
  549.             Tk_Item *itemPtr, int first, int last));
  550.  
  551. typedef struct Tk_ItemType {
  552.     char *name;                /* The name of this type of item, such
  553.                      * as "line". */
  554.     int itemSize;            /* Total amount of space needed for
  555.                      * item's record. */
  556.     Tk_ItemCreateProc *createProc;    /* Procedure to create a new item of
  557.                      * this type. */
  558.     Tk_ConfigSpec *configSpecs;        /* Pointer to array of configuration
  559.                      * specs for this type.  Used for
  560.                      * returning configuration info. */
  561.     Tk_ItemConfigureProc *configProc;    /* Procedure to call to change
  562.                      * configuration options. */
  563.     Tk_ItemCoordProc *coordProc;    /* Procedure to call to get and set
  564.                      * the item's coordinates. */
  565.     Tk_ItemDeleteProc *deleteProc;    /* Procedure to delete existing item of
  566.                      * this type. */
  567.     Tk_ItemDisplayProc *displayProc;    /* Procedure to display items of
  568.                      * this type. */
  569.     int alwaysRedraw;            /* Non-zero means displayProc should
  570.                      * be called even when the item has
  571.                      * been moved off-screen. */
  572.     Tk_ItemPointProc *pointProc;    /* Computes distance from item to
  573.                      * a given point. */
  574.     Tk_ItemAreaProc *areaProc;        /* Computes whether item is inside,
  575.                      * outside, or overlapping an area. */
  576.     Tk_ItemPostscriptProc *postscriptProc;
  577.                     /* Procedure to write a Postscript
  578.                      * description for items of this
  579.                      * type. */
  580.     Tk_ItemScaleProc *scaleProc;    /* Procedure to rescale items of
  581.                      * this type. */
  582.     Tk_ItemTranslateProc *translateProc;/* Procedure to translate items of
  583.                      * this type. */
  584.     Tk_ItemIndexProc *indexProc;    /* Procedure to determine index of
  585.                      * indicated character.  NULL if
  586.                      * item doesn't support indexing. */
  587.     Tk_ItemCursorProc *icursorProc;    /* Procedure to set insert cursor pos.
  588.                      * to just before a given position. */
  589.     Tk_ItemSelectionProc *selectionProc;/* Procedure to return selection (in
  590.                      * STRING format) when it is in this
  591.                      * item. */
  592.     Tk_ItemInsertProc *insertProc;    /* Procedure to insert something into
  593.                      * an item. */
  594.     Tk_ItemDCharsProc *dCharsProc;    /* Procedure to delete characters
  595.                      * from an item. */
  596.     struct Tk_ItemType *nextPtr;    /* Used to link types together into
  597.                      * a list. */
  598. } Tk_ItemType;
  599.  
  600. /*
  601.  * The following declaration is for use in the Tk_ConfigSpec arrays
  602.  * for canvas items:  it handles the -tags option.
  603.  */
  604.  
  605. EXTERN Tk_CustomOption tk_CanvasTagsOption;
  606.  
  607. /*
  608.  * The following structure provides information about the selection and
  609.  * the insertion cursor.  It is needed by only a few items, such as
  610.  * those that display text.  It is shared by the generic canvas code
  611.  * and the item-specific code, but most of the fields should be written
  612.  * only by the canvas generic code.
  613.  */
  614.  
  615. typedef struct Tk_CanvasTextInfo {
  616.     Tk_3DBorder selBorder;    /* Border and background for selected
  617.                  * characters.  Read-only to items.*/
  618.     int selBorderWidth;        /* Width of border around selection. 
  619.                  * Read-only to items. */
  620.     XColor *selFgColorPtr;    /* Foreground color for selected text.
  621.                  * Read-only to items. */
  622.     Tk_Item *selItemPtr;    /* Pointer to selected item.  NULL means
  623.                  * selection isn't in this canvas.
  624.                  * Writable by items. */
  625.     int selectFirst;        /* Index of first selected character. 
  626.                  * Writable by items. */
  627.     int selectLast;        /* Index of last selected character. 
  628.                  * Writable by items. */
  629.     Tk_Item *anchorItemPtr;    /* Item corresponding to "selectAnchor":
  630.                  * not necessarily selItemPtr.   Read-only
  631.                  * to items. */
  632.     int selectAnchor;        /* Fixed end of selection (i.e. "select to"
  633.                  * operation will use this as one end of the
  634.                  * selection).  Writable by items. */
  635.     Tk_3DBorder insertBorder;    /* Used to draw vertical bar for insertion
  636.                  * cursor.  Read-only to items. */
  637.     int insertWidth;        /* Total width of insertion cursor.  Read-only
  638.                  * to items. */
  639.     int insertBorderWidth;    /* Width of 3-D border around insert cursor.
  640.                  * Read-only to items. */
  641.     Tk_Item *focusItemPtr;    /* Item that currently has the input focus,
  642.                  * or NULL if no such item.  Read-only to
  643.                  * items.  */
  644.     int gotFocus;        /* Non-zero means that the canvas widget has
  645.                  * the input focus.  Read-only to items.*/
  646.     int cursorOn;        /* Non-zero means that an insertion cursor
  647.                  * should be displayed in focusItemPtr.
  648.                  * Read-only to items.*/
  649. } Tk_CanvasTextInfo;
  650.  
  651. /*
  652.  *--------------------------------------------------------------
  653.  *
  654.  * Procedure prototypes and structures used for managing images:
  655.  *
  656.  *--------------------------------------------------------------
  657.  */
  658.  
  659. typedef struct Tk_ImageType Tk_ImageType;
  660. typedef int (Tk_ImageCreateProc) _ANSI_ARGS_((Tcl_Interp *interp,
  661.     char *name, int argc, char **argv, Tk_ImageType *typePtr,
  662.     Tk_ImageMaster master, ClientData *masterDataPtr));
  663. typedef ClientData (Tk_ImageGetProc) _ANSI_ARGS_((Tk_Window tkwin,
  664.     ClientData masterData));
  665. typedef void (Tk_ImageDisplayProc) _ANSI_ARGS_((ClientData instanceData,
  666.     Display *display, Drawable drawable, int imageX, int imageY,
  667.     int width, int height, int drawableX, int drawableY));
  668. typedef void (Tk_ImageFreeProc) _ANSI_ARGS_((ClientData instanceData,
  669.     Display *display));
  670. typedef void (Tk_ImageDeleteProc) _ANSI_ARGS_((ClientData masterData));
  671. typedef void (Tk_ImageChangedProc) _ANSI_ARGS_((ClientData clientData,
  672.     int x, int y, int width, int height, int imageWidth,
  673.     int imageHeight));
  674.  
  675. /*
  676.  * The following structure represents a particular type of image
  677.  * (bitmap, xpm image, etc.).  It provides information common to
  678.  * all images of that type, such as the type name and a collection
  679.  * of procedures in the image manager that respond to various
  680.  * events.  Each image manager is represented by one of these
  681.  * structures.
  682.  */
  683.  
  684. struct Tk_ImageType {
  685.     char *name;            /* Name of image type. */
  686.     Tk_ImageCreateProc *createProc;
  687.                 /* Procedure to call to create a new image
  688.                  * of this type. */
  689.     Tk_ImageGetProc *getProc;    /* Procedure to call the first time
  690.                  * Tk_GetImage is called in a new way
  691.                  * (new visual or screen). */
  692.     Tk_ImageDisplayProc *displayProc;
  693.                 /* Call to draw image, in response to
  694.                  * Tk_RedrawImage calls. */
  695.     Tk_ImageFreeProc *freeProc;    /* Procedure to call whenever Tk_FreeImage
  696.                  * is called to release an instance of an
  697.                  * image. */
  698.     Tk_ImageDeleteProc *deleteProc;
  699.                 /* Procedure to call to delete image.  It
  700.                  * will not be called until after freeProc
  701.                  * has been called for each instance of the
  702.                  * image. */
  703.     struct Tk_ImageType *nextPtr;
  704.                 /* Next in list of all image types currently
  705.                  * known.  Filled in by Tk, not by image
  706.                  * manager. */
  707. };
  708.  
  709. /*
  710.  *--------------------------------------------------------------
  711.  *
  712.  * Additional definitions used to manage images of type "photo".
  713.  *
  714.  *--------------------------------------------------------------
  715.  */
  716.  
  717. /*
  718.  * The following type is used to identify a particular photo image
  719.  * to be manipulated:
  720.  */
  721.  
  722. typedef void *Tk_PhotoHandle;
  723.  
  724. /*
  725.  * The following structure describes a block of pixels in memory:
  726.  */
  727.  
  728. typedef struct Tk_PhotoImageBlock {
  729.     unsigned char *pixelPtr;    /* Pointer to the first pixel. */
  730.     int        width;        /* Width of block, in pixels. */
  731.     int        height;        /* Height of block, in pixels. */
  732.     int        pitch;        /* Address difference between corresponding
  733.                  * pixels in successive lines. */
  734.     int        pixelSize;    /* Address difference between successive
  735.                  * pixels in the same line. */
  736.     int        offset[3];    /* Address differences between the red, green
  737.                  * and blue components of the pixel and the
  738.                  * pixel as a whole. */
  739. } Tk_PhotoImageBlock;
  740.  
  741. /*
  742.  * Procedure prototypes and structures used in reading and
  743.  * writing photo images:
  744.  */
  745.  
  746. typedef struct Tk_PhotoImageFormat Tk_PhotoImageFormat;
  747. typedef int (Tk_ImageFileMatchProc) _ANSI_ARGS_((FILE *f, char *fileName,
  748.     char *formatString, int *widthPtr, int *heightPtr));
  749. typedef int (Tk_ImageStringMatchProc) _ANSI_ARGS_((char *string,
  750.     char *formatString, int *widthPtr, int *heightPtr));
  751. typedef int (Tk_ImageFileReadProc) _ANSI_ARGS_((Tcl_Interp *interp,
  752.     FILE *f, char *fileName, char *formatString, Tk_PhotoHandle imageHandle,
  753.     int destX, int destY, int width, int height, int srcX, int srcY));
  754. typedef int (Tk_ImageStringReadProc) _ANSI_ARGS_((Tcl_Interp *interp,
  755.     char *string, char *formatString, Tk_PhotoHandle imageHandle,
  756.     int destX, int destY, int width, int height, int srcX, int srcY));
  757. typedef int (Tk_ImageFileWriteProc) _ANSI_ARGS_((Tcl_Interp *interp,
  758.     char *fileName, char *formatString, Tk_PhotoImageBlock *blockPtr));
  759. typedef int (Tk_ImageStringWriteProc) _ANSI_ARGS_((Tcl_Interp *interp,
  760.     Tcl_DString *dataPtr, char *formatString,
  761.     Tk_PhotoImageBlock *blockPtr));
  762.  
  763. /*
  764.  * The following structure represents a particular file format for
  765.  * storing images (e.g., PPM, GIF, JPEG, etc.).  It provides information
  766.  * to allow image files of that format to be recognized and read into
  767.  * a photo image.
  768.  */
  769.  
  770. struct Tk_PhotoImageFormat {
  771.     char *name;            /* Name of image file format */
  772.     Tk_ImageFileMatchProc *fileMatchProc;
  773.                 /* Procedure to call to determine whether
  774.                  * an image file matches this format. */
  775.     Tk_ImageStringMatchProc *stringMatchProc;
  776.                 /* Procedure to call to determine whether
  777.                  * the data in a string matches this format. */
  778.     Tk_ImageFileReadProc *fileReadProc;
  779.                 /* Procedure to call to read data from
  780.                  * an image file into a photo image. */
  781.     Tk_ImageStringReadProc *stringReadProc;
  782.                 /* Procedure to call to read data from
  783.                  * a string into a photo image. */
  784.     Tk_ImageFileWriteProc *fileWriteProc;
  785.                 /* Procedure to call to write data from
  786.                  * a photo image to a file. */
  787.     Tk_ImageStringWriteProc *stringWriteProc;
  788.                 /* Procedure to call to obtain a string
  789.                  * representation of the data in a photo
  790.                  * image.*/
  791.     struct Tk_PhotoImageFormat *nextPtr;
  792.                 /* Next in list of all photo image formats
  793.                  * currently known.  Filled in by Tk, not
  794.                  * by image format handler. */
  795. };
  796.  
  797. /*
  798.  *--------------------------------------------------------------
  799.  *
  800.  * Additional procedure types defined by Tk.
  801.  *
  802.  *--------------------------------------------------------------
  803.  */
  804.  
  805. typedef int (Tk_ErrorProc) _ANSI_ARGS_((ClientData clientData,
  806.     XErrorEvent *errEventPtr));
  807. typedef void (Tk_EventProc) _ANSI_ARGS_((ClientData clientData,
  808.     XEvent *eventPtr));
  809. typedef void (Tk_FileProc) _ANSI_ARGS_((ClientData clientData, int mask));
  810. typedef int (Tk_FileProc2) _ANSI_ARGS_((ClientData clientData, int mask,
  811.     int flags));
  812. typedef void (Tk_FreeProc) _ANSI_ARGS_((ClientData clientData));
  813. typedef int (Tk_GenericProc) _ANSI_ARGS_((ClientData clientData,
  814.     XEvent *eventPtr));
  815. typedef int (Tk_GetSelProc) _ANSI_ARGS_((ClientData clientData,
  816.     Tcl_Interp *interp, char *portion));
  817. typedef void (Tk_IdleProc) _ANSI_ARGS_((ClientData clientData));
  818. typedef void (Tk_LostSelProc) _ANSI_ARGS_((ClientData clientData));
  819. typedef Bool (Tk_RestrictProc) _ANSI_ARGS_((Display *display, XEvent *eventPtr,
  820.     char *arg));
  821. typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData,
  822.     int offset, char *buffer, int maxBytes));
  823. typedef void (Tk_TimerProc) _ANSI_ARGS_((ClientData clientData));
  824.  
  825. /*
  826.  *--------------------------------------------------------------
  827.  *
  828.  * Exported procedures and variables.
  829.  *
  830.  *--------------------------------------------------------------
  831.  */
  832.  
  833. EXTERN XColor *        Tk_3DBorderColor _ANSI_ARGS_((Tk_3DBorder border));
  834. EXTERN GC        Tk_3DBorderGC _ANSI_ARGS_((Tk_Window tkwin,
  835.                 Tk_3DBorder border, int which));
  836. EXTERN void        Tk_3DHorizontalBevel _ANSI_ARGS_((Tk_Window tkwin,
  837.                 Drawable drawable, Tk_3DBorder border, int x,
  838.                 int y, int width, int height, int leftIn,
  839.                 int rightIn, int topBevel, int relief));
  840. EXTERN void        Tk_3DVerticalBevel _ANSI_ARGS_((Tk_Window tkwin,
  841.                 Drawable drawable, Tk_3DBorder border, int x,
  842.                 int y, int width, int height, int leftBevel,
  843.                 int relief));
  844. EXTERN void        Tk_AddOption _ANSI_ARGS_((Tk_Window tkwin, char *name,
  845.                 char *value, int priority));
  846. EXTERN void        Tk_BackgroundError _ANSI_ARGS_((Tcl_Interp *interp));
  847. EXTERN void        Tk_BindEvent _ANSI_ARGS_((Tk_BindingTable bindingTable,
  848.                 XEvent *eventPtr, Tk_Window tkwin, int numObjects,
  849.                 ClientData *objectPtr));
  850. EXTERN void        Tk_CancelIdleCall _ANSI_ARGS_((Tk_IdleProc *idleProc,
  851.                 ClientData clientData));
  852. EXTERN void        Tk_CanvasDrawableCoords _ANSI_ARGS_((Tk_Canvas canvas,
  853.                 double x, double y, short *drawableXPtr,
  854.                 short *drawableYPtr));
  855. EXTERN void        Tk_CanvasEventuallyRedraw _ANSI_ARGS_((
  856.                 Tk_Canvas canvas, int x1, int y1, int x2,
  857.                 int y2));
  858. EXTERN int        Tk_CanvasGetCoord _ANSI_ARGS_((Tcl_Interp *interp,
  859.                 Tk_Canvas canvas, char *string,
  860.                 double *doublePtr));
  861. EXTERN Tk_CanvasTextInfo *Tk_CanvasGetTextInfo _ANSI_ARGS_((Tk_Canvas canvas));
  862. EXTERN int        Tk_CanvasPsBitmap _ANSI_ARGS_((Tcl_Interp *interp,
  863.                 Tk_Canvas canvas, Pixmap bitmap, int x, int y,
  864.                 int width, int height));
  865. EXTERN int        Tk_CanvasPsColor _ANSI_ARGS_((Tcl_Interp *interp,
  866.                 Tk_Canvas canvas, XColor *colorPtr));
  867. EXTERN int        Tk_CanvasPsFont _ANSI_ARGS_((Tcl_Interp *interp,
  868.                 Tk_Canvas canvas, XFontStruct *fontStructPtr));
  869. EXTERN void        Tk_CanvasPsPath _ANSI_ARGS_((Tcl_Interp *interp,
  870.                 Tk_Canvas canvas, double *coordPtr, int numPoints));
  871. EXTERN int        Tk_CanvasPsStipple _ANSI_ARGS_((Tcl_Interp *interp,
  872.                 Tk_Canvas canvas, Pixmap bitmap));
  873. EXTERN double        Tk_CanvasPsY _ANSI_ARGS_((Tk_Canvas canvas, double y));
  874. EXTERN void        Tk_CanvasSetStippleOrigin _ANSI_ARGS_((
  875.                 Tk_Canvas canvas, GC gc));
  876. EXTERN Tk_Window    Tk_CanvasTkwin _ANSI_ARGS_((Tk_Canvas canvas));
  877. EXTERN void        Tk_CanvasWindowCoords _ANSI_ARGS_((Tk_Canvas canvas,
  878.                 double x, double y, short *screenXPtr,
  879.                 short *screenYPtr));
  880. EXTERN void        Tk_ChangeWindowAttributes _ANSI_ARGS_((Tk_Window tkwin,
  881.                 unsigned long valueMask,
  882.                 XSetWindowAttributes *attsPtr));
  883. EXTERN void        Tk_ClearSelection _ANSI_ARGS_((Tk_Window tkwin,
  884.                 Atom selection));
  885. EXTERN int        Tk_ClipboardAppend _ANSI_ARGS_((Tcl_Interp *interp,
  886.                 Tk_Window tkwin, Atom target, Atom format,
  887.                 char* buffer));
  888. EXTERN int        Tk_ClipboardClear _ANSI_ARGS_((Tcl_Interp *interp,
  889.                 Tk_Window tkwin));
  890. EXTERN int        Tk_ConfigureInfo _ANSI_ARGS_((Tcl_Interp *interp,
  891.                 Tk_Window tkwin, Tk_ConfigSpec *specs,
  892.                 char *widgRec, char *argvName, int flags));
  893. EXTERN int        Tk_ConfigureValue _ANSI_ARGS_((Tcl_Interp *interp,
  894.                 Tk_Window tkwin, Tk_ConfigSpec *specs,
  895.                 char *widgRec, char *argvName, int flags));
  896. EXTERN int        Tk_ConfigureWidget _ANSI_ARGS_((Tcl_Interp *interp,
  897.                 Tk_Window tkwin, Tk_ConfigSpec *specs,
  898.                 int argc, char **argv, char *widgRec,
  899.                 int flags));
  900. EXTERN void        Tk_ConfigureWindow _ANSI_ARGS_((Tk_Window tkwin,
  901.                 unsigned int valueMask, XWindowChanges *valuePtr));
  902. EXTERN Tk_Window    Tk_CoordsToWindow _ANSI_ARGS_((int rootX, int rootY,
  903.                 Tk_Window tkwin));
  904. EXTERN unsigned long    Tk_CreateBinding _ANSI_ARGS_((Tcl_Interp *interp,
  905.                 Tk_BindingTable bindingTable, ClientData object,
  906.                 char *eventString, char *command, int append));
  907. EXTERN Tk_BindingTable    Tk_CreateBindingTable _ANSI_ARGS_((Tcl_Interp *interp));
  908. EXTERN Tk_ErrorHandler    Tk_CreateErrorHandler _ANSI_ARGS_((Display *display,
  909.                 int errNum, int request, int minorCode,
  910.                 Tk_ErrorProc *errorProc, ClientData clientData));
  911. EXTERN void        Tk_CreateEventHandler _ANSI_ARGS_((Tk_Window token,
  912.                 unsigned long mask, Tk_EventProc *proc,
  913.                 ClientData clientData));
  914. EXTERN void        Tk_CreateFileHandler _ANSI_ARGS_((int fd, int mask,
  915.                 Tk_FileProc *proc, ClientData clientData));
  916. EXTERN void        Tk_CreateFileHandler2 _ANSI_ARGS_((int fd,
  917.                 Tk_FileProc2 *proc, ClientData clientData));
  918. EXTERN void        Tk_CreateGenericHandler _ANSI_ARGS_((
  919.                 Tk_GenericProc *proc, ClientData clientData));
  920. EXTERN void        Tk_CreateImageType _ANSI_ARGS_((
  921.                 Tk_ImageType *typePtr));
  922. EXTERN void        Tk_CreateItemType _ANSI_ARGS_((Tk_ItemType *typePtr));
  923. EXTERN Tk_Window    Tk_CreateMainWindow _ANSI_ARGS_((Tcl_Interp *interp,
  924.                 char *screenName, char *baseName,
  925.                 char *className));
  926. EXTERN void        Tk_CreatePhotoImageFormat _ANSI_ARGS_((
  927.                 Tk_PhotoImageFormat *formatPtr));
  928. EXTERN void        Tk_CreateSelHandler _ANSI_ARGS_((Tk_Window tkwin,
  929.                 Atom selection, Atom target,
  930.                 Tk_SelectionProc *proc, ClientData clientData,
  931.                 Atom format));
  932. EXTERN Tk_TimerToken    Tk_CreateTimerHandler _ANSI_ARGS_((int milliseconds,
  933.                 Tk_TimerProc *proc, ClientData clientData));
  934. EXTERN Tk_Window    Tk_CreateWindow _ANSI_ARGS_((Tcl_Interp *interp,
  935.                 Tk_Window parent, char *name, char *screenName));
  936. EXTERN Tk_Window    Tk_CreateWindowFromPath _ANSI_ARGS_((
  937.                 Tcl_Interp *interp, Tk_Window tkwin,
  938.                 char *pathName, char *screenName));
  939. EXTERN int        Tk_DefineBitmap _ANSI_ARGS_((Tcl_Interp *interp,
  940.                 Tk_Uid name, char *source, int width,
  941.                 int height));
  942. EXTERN void        Tk_DefineCursor _ANSI_ARGS_((Tk_Window window,
  943.                 Cursor cursor));
  944. EXTERN void        Tk_DeleteAllBindings _ANSI_ARGS_((
  945.                 Tk_BindingTable bindingTable, ClientData object));
  946. EXTERN int        Tk_DeleteBinding _ANSI_ARGS_((Tcl_Interp *interp,
  947.                 Tk_BindingTable bindingTable, ClientData object,
  948.                 char *eventString));
  949. EXTERN void        Tk_DeleteBindingTable _ANSI_ARGS_((
  950.                 Tk_BindingTable bindingTable));
  951. EXTERN void        Tk_DeleteErrorHandler _ANSI_ARGS_((
  952.                 Tk_ErrorHandler handler));
  953. EXTERN void        Tk_DeleteEventHandler _ANSI_ARGS_((Tk_Window token,
  954.                 unsigned long mask, Tk_EventProc *proc,
  955.                 ClientData clientData));
  956. EXTERN void        Tk_DeleteFileHandler _ANSI_ARGS_((int fd));
  957. EXTERN void        Tk_DeleteGenericHandler _ANSI_ARGS_((
  958.                 Tk_GenericProc *proc, ClientData clientData));
  959. EXTERN void        Tk_DeleteImage _ANSI_ARGS_((Tcl_Interp *interp,
  960.                 char *name));
  961. EXTERN void        Tk_DeleteSelHandler _ANSI_ARGS_((Tk_Window tkwin,
  962.                 Atom selection, Atom target));
  963. EXTERN void        Tk_DeleteTimerHandler _ANSI_ARGS_((
  964.                 Tk_TimerToken token));
  965. EXTERN void        Tk_DestroyWindow _ANSI_ARGS_((Tk_Window tkwin));
  966. EXTERN char *        Tk_DisplayName _ANSI_ARGS_((Tk_Window tkwin));
  967. EXTERN int        Tk_DoOneEvent _ANSI_ARGS_((int flags));
  968. EXTERN void        Tk_DoWhenIdle _ANSI_ARGS_((Tk_IdleProc *proc,
  969.                 ClientData clientData));
  970. EXTERN void        Tk_Draw3DPolygon _ANSI_ARGS_((Tk_Window tkwin,
  971.                 Drawable drawable, Tk_3DBorder border,
  972.                 XPoint *pointPtr, int numPoints, int borderWidth,
  973.                 int leftRelief));
  974. EXTERN void        Tk_Draw3DRectangle _ANSI_ARGS_((Tk_Window tkwin,
  975.                 Drawable drawable, Tk_3DBorder border, int x,
  976.                 int y, int width, int height, int borderWidth,
  977.                 int relief));
  978. EXTERN void        Tk_DrawFocusHighlight _ANSI_ARGS_((Tk_Window tkwin,
  979.                 GC gc, int width, Drawable drawable));
  980. EXTERN int        Tk_EventInit _ANSI_ARGS_((Tcl_Interp *interp));
  981. EXTERN void        Tk_EventuallyFree _ANSI_ARGS_((ClientData clientData,
  982.                 Tk_FreeProc *freeProc));
  983. EXTERN void        Tk_Fill3DPolygon _ANSI_ARGS_((Tk_Window tkwin,
  984.                 Drawable drawable, Tk_3DBorder border,
  985.                 XPoint *pointPtr, int numPoints, int borderWidth,
  986.                 int leftRelief));
  987. EXTERN void        Tk_Fill3DRectangle _ANSI_ARGS_((Tk_Window tkwin,
  988.                 Drawable drawable, Tk_3DBorder border, int x,
  989.                 int y, int width, int height, int borderWidth,
  990.                 int relief));
  991. EXTERN Tk_PhotoHandle    Tk_FindPhoto _ANSI_ARGS_((char *imageName));
  992. EXTERN void        Tk_Free3DBorder _ANSI_ARGS_((Tk_3DBorder border));
  993. EXTERN void        Tk_FreeBitmap _ANSI_ARGS_((Display *display,
  994.                 Pixmap bitmap));
  995. EXTERN void        Tk_FreeColor _ANSI_ARGS_((XColor *colorPtr));
  996. EXTERN void        Tk_FreeColormap _ANSI_ARGS_((Display *display,
  997.                 Colormap colormap));
  998. EXTERN void        Tk_FreeCursor _ANSI_ARGS_((Display *display,
  999.                 Cursor cursor));
  1000. EXTERN void        Tk_FreeFontStruct _ANSI_ARGS_((
  1001.                 XFontStruct *fontStructPtr));
  1002. EXTERN void        Tk_FreeGC _ANSI_ARGS_((Display *display, GC gc));
  1003. EXTERN void        Tk_FreeImage _ANSI_ARGS_((Tk_Image image));
  1004. EXTERN void        Tk_FreeOptions _ANSI_ARGS_((Tk_ConfigSpec *specs,
  1005.                 char *widgRec, Display *display, int needFlags));
  1006. EXTERN void        Tk_FreePixmap _ANSI_ARGS_((Display *display,
  1007.                 Pixmap pixmap));
  1008. EXTERN void        Tk_FreeXId _ANSI_ARGS_((Display *display, XID xid));
  1009. EXTERN GC        Tk_GCForColor _ANSI_ARGS_((XColor *colorPtr,
  1010.                 Drawable drawable));
  1011. EXTERN void        Tk_GeometryRequest _ANSI_ARGS_((Tk_Window tkwin,
  1012.                 int reqWidth,  int reqHeight));
  1013. EXTERN Tk_3DBorder    Tk_Get3DBorder _ANSI_ARGS_((Tcl_Interp *interp,
  1014.                 Tk_Window tkwin, Tk_Uid colorName));
  1015. EXTERN void        Tk_GetAllBindings _ANSI_ARGS_((Tcl_Interp *interp,
  1016.                 Tk_BindingTable bindingTable, ClientData object));
  1017. EXTERN int        Tk_GetAnchor _ANSI_ARGS_((Tcl_Interp *interp,
  1018.                 char *string, Tk_Anchor *anchorPtr));
  1019. EXTERN char *        Tk_GetAtomName _ANSI_ARGS_((Tk_Window tkwin,
  1020.                 Atom atom));
  1021. EXTERN char *        Tk_GetBinding _ANSI_ARGS_((Tcl_Interp *interp,
  1022.                 Tk_BindingTable bindingTable, ClientData object,
  1023.                 char *eventString));
  1024. EXTERN Pixmap        Tk_GetBitmap _ANSI_ARGS_((Tcl_Interp *interp,
  1025.                 Tk_Window tkwin, Tk_Uid string));
  1026. EXTERN Pixmap        Tk_GetBitmapFromData _ANSI_ARGS_((Tcl_Interp *interp,
  1027.                 Tk_Window tkwin, char *source,
  1028.                 int width, int height));
  1029. EXTERN int        Tk_GetCapStyle _ANSI_ARGS_((Tcl_Interp *interp,
  1030.                 char *string, int *capPtr));
  1031. EXTERN XColor *        Tk_GetColor _ANSI_ARGS_((Tcl_Interp *interp,
  1032.                 Tk_Window tkwin, Tk_Uid name));
  1033. EXTERN XColor *        Tk_GetColorByValue _ANSI_ARGS_((Tk_Window tkwin,
  1034.                 XColor *colorPtr));
  1035. EXTERN Colormap        Tk_GetColormap _ANSI_ARGS_((Tcl_Interp *interp,
  1036.                 Tk_Window tkwin, char *string));
  1037. EXTERN Cursor        Tk_GetCursor _ANSI_ARGS_((Tcl_Interp *interp,
  1038.                 Tk_Window tkwin, Tk_Uid string));
  1039. EXTERN Cursor        Tk_GetCursorFromData _ANSI_ARGS_((Tcl_Interp *interp,
  1040.                 Tk_Window tkwin, char *source, char *mask,
  1041.                 int width, int height, int xHot, int yHot,
  1042.                 Tk_Uid fg, Tk_Uid bg));
  1043. EXTERN XFontStruct *    Tk_GetFontStruct _ANSI_ARGS_((Tcl_Interp *interp,
  1044.                 Tk_Window tkwin, Tk_Uid name));
  1045. EXTERN GC        Tk_GetGC _ANSI_ARGS_((Tk_Window tkwin,
  1046.                 unsigned long valueMask, XGCValues *valuePtr));
  1047. EXTERN Tk_Image        Tk_GetImage _ANSI_ARGS_((Tcl_Interp *interp,
  1048.                 Tk_Window tkwin, char *name,
  1049.                 Tk_ImageChangedProc *changeProc,
  1050.                 ClientData clientData));
  1051. EXTERN Tk_ItemType *    Tk_GetItemTypes _ANSI_ARGS_((void));
  1052. EXTERN int        Tk_GetJoinStyle _ANSI_ARGS_((Tcl_Interp *interp,
  1053.                 char *string, int *joinPtr));
  1054. EXTERN int        Tk_GetJustify _ANSI_ARGS_((Tcl_Interp *interp,
  1055.                 char *string, Tk_Justify *justifyPtr));
  1056. EXTERN Tk_Uid        Tk_GetOption _ANSI_ARGS_((Tk_Window tkwin, char *name,
  1057.                 char *className));
  1058. EXTERN int        Tk_GetPixels _ANSI_ARGS_((Tcl_Interp *interp,
  1059.                 Tk_Window tkwin, char *string, int *intPtr));
  1060. EXTERN Pixmap        Tk_GetPixmap _ANSI_ARGS_((Display *display, Drawable d,
  1061.                 int width, int height, int depth));
  1062. EXTERN int        Tk_GetRelief _ANSI_ARGS_((Tcl_Interp *interp,
  1063.                 char *name, int *reliefPtr));
  1064. EXTERN void        Tk_GetRootCoords _ANSI_ARGS_ ((Tk_Window tkwin,
  1065.                 int *xPtr, int *yPtr));
  1066. EXTERN int        Tk_GetScrollInfo _ANSI_ARGS_((Tcl_Interp *interp,
  1067.                 int argc, char **argv, double *dblPtr,
  1068.                 int *intPtr));
  1069. EXTERN int        Tk_GetScreenMM _ANSI_ARGS_((Tcl_Interp *interp,
  1070.                 Tk_Window tkwin, char *string, double *doublePtr));
  1071. EXTERN int        Tk_GetSelection _ANSI_ARGS_((Tcl_Interp *interp,
  1072.                 Tk_Window tkwin, Atom selection, Atom target,
  1073.                 Tk_GetSelProc *proc, ClientData clientData));
  1074. EXTERN Tk_Uid        Tk_GetUid _ANSI_ARGS_((char *string));
  1075. EXTERN Visual *        Tk_GetVisual _ANSI_ARGS_((Tcl_Interp *interp,
  1076.                 Tk_Window tkwin, char *string, int *depthPtr,
  1077.                 Colormap *colormapPtr));
  1078. EXTERN void        Tk_GetVRootGeometry _ANSI_ARGS_((Tk_Window tkwin,
  1079.                 int *xPtr, int *yPtr, int *widthPtr,
  1080.                 int *heightPtr));
  1081. EXTERN int        Tk_Grab _ANSI_ARGS_((Tcl_Interp *interp,
  1082.                 Tk_Window tkwin, int grabGlobal));
  1083. EXTERN void        Tk_HandleEvent _ANSI_ARGS_((XEvent *eventPtr));
  1084. EXTERN Tk_Window          Tk_IdToWindow _ANSI_ARGS_((Display *display,
  1085.                 Window window));
  1086. EXTERN void        Tk_ImageChanged _ANSI_ARGS_((
  1087.                 Tk_ImageMaster master, int x, int y,
  1088.                 int width, int height, int imageWidth,
  1089.                 int imageHeight));
  1090. EXTERN int        Tk_Init _ANSI_ARGS_((Tcl_Interp *interp));
  1091. EXTERN Atom        Tk_InternAtom _ANSI_ARGS_((Tk_Window tkwin,
  1092.                 char *name));
  1093. EXTERN void        Tk_Main _ANSI_ARGS_((int argc, char **argv,
  1094.                 Tcl_AppInitProc *appInitProc));
  1095. EXTERN void        Tk_MainLoop _ANSI_ARGS_((void));
  1096. EXTERN void        Tk_MaintainGeometry _ANSI_ARGS_((Tk_Window slave,
  1097.                 Tk_Window master, int x, int y, int width,
  1098.                 int height));
  1099. EXTERN Tk_Window    Tk_MainWindow _ANSI_ARGS_((Tcl_Interp *interp));
  1100. EXTERN void        Tk_MakeWindowExist _ANSI_ARGS_((Tk_Window tkwin));
  1101. EXTERN void        Tk_ManageGeometry _ANSI_ARGS_((Tk_Window tkwin,
  1102.                 Tk_GeomMgr *mgrPtr, ClientData clientData));
  1103. EXTERN void        Tk_MapWindow _ANSI_ARGS_((Tk_Window tkwin));
  1104. EXTERN void        Tk_MoveResizeWindow _ANSI_ARGS_((Tk_Window tkwin,
  1105.                 int x, int y, int width, int height));
  1106. EXTERN void        Tk_MoveWindow _ANSI_ARGS_((Tk_Window tkwin, int x,
  1107.                 int y));
  1108. EXTERN void        Tk_MoveToplevelWindow _ANSI_ARGS_((Tk_Window tkwin,
  1109.                 int x, int y));
  1110. EXTERN char *        Tk_NameOf3DBorder _ANSI_ARGS_((Tk_3DBorder border));
  1111. EXTERN char *        Tk_NameOfAnchor _ANSI_ARGS_((Tk_Anchor anchor));
  1112. EXTERN char *        Tk_NameOfBitmap _ANSI_ARGS_((Display *display,
  1113.                 Pixmap bitmap));
  1114. EXTERN char *        Tk_NameOfCapStyle _ANSI_ARGS_((int cap));
  1115. EXTERN char *        Tk_NameOfColor _ANSI_ARGS_((XColor *colorPtr));
  1116. EXTERN char *        Tk_NameOfCursor _ANSI_ARGS_((Display *display,
  1117.                 Cursor cursor));
  1118. EXTERN char *        Tk_NameOfFontStruct _ANSI_ARGS_((
  1119.                 XFontStruct *fontStructPtr));
  1120. EXTERN char *        Tk_NameOfImage _ANSI_ARGS_((
  1121.                 Tk_ImageMaster imageMaster));
  1122. EXTERN char *        Tk_NameOfJoinStyle _ANSI_ARGS_((int join));
  1123. EXTERN char *        Tk_NameOfJustify _ANSI_ARGS_((Tk_Justify justify));
  1124. EXTERN char *        Tk_NameOfRelief _ANSI_ARGS_((int relief));
  1125. EXTERN Tk_Window    Tk_NameToWindow _ANSI_ARGS_((Tcl_Interp *interp,
  1126.                 char *pathName, Tk_Window tkwin));
  1127. EXTERN void        Tk_OwnSelection _ANSI_ARGS_((Tk_Window tkwin,
  1128.                 Atom selection, Tk_LostSelProc *proc,
  1129.                 ClientData clientData));
  1130. EXTERN int        Tk_ParseArgv _ANSI_ARGS_((Tcl_Interp *interp,
  1131.                 Tk_Window tkwin, int *argcPtr, char **argv,
  1132.                 Tk_ArgvInfo *argTable, int flags));
  1133. EXTERN void        Tk_PhotoPutBlock _ANSI_ARGS_((Tk_PhotoHandle handle,
  1134.                 Tk_PhotoImageBlock *blockPtr, int x, int y,
  1135.                 int width, int height));
  1136. EXTERN void        Tk_PhotoPutZoomedBlock _ANSI_ARGS_((
  1137.                 Tk_PhotoHandle handle,
  1138.                 Tk_PhotoImageBlock *blockPtr, int x, int y,
  1139.                 int width, int height, int zoomX, int zoomY,
  1140.                 int subsampleX, int subsampleY));
  1141. EXTERN int        Tk_PhotoGetImage _ANSI_ARGS_((Tk_PhotoHandle handle,
  1142.                 Tk_PhotoImageBlock *blockPtr));
  1143. EXTERN void        Tk_PhotoBlank _ANSI_ARGS_((Tk_PhotoHandle handle));
  1144. EXTERN void        Tk_PhotoExpand _ANSI_ARGS_((Tk_PhotoHandle handle,
  1145.                 int width, int height ));
  1146. EXTERN void        Tk_PhotoGetSize _ANSI_ARGS_((Tk_PhotoHandle handle,
  1147.                 int *widthPtr, int *heightPtr));
  1148. EXTERN void        Tk_PhotoSetSize _ANSI_ARGS_((Tk_PhotoHandle handle,
  1149.                 int width, int height));
  1150. EXTERN void        Tk_Preserve _ANSI_ARGS_((ClientData clientData));
  1151. EXTERN void        Tk_RedrawImage _ANSI_ARGS_((Tk_Image image, int imageX,
  1152.                 int imageY, int width, int height,
  1153.                 Drawable drawable, int drawableX, int drawableY));
  1154. EXTERN void        Tk_Release _ANSI_ARGS_((ClientData clientData));
  1155. EXTERN void        Tk_ResizeWindow _ANSI_ARGS_((Tk_Window tkwin,
  1156.                 int width, int height));
  1157. EXTERN int        Tk_RestackWindow _ANSI_ARGS_((Tk_Window tkwin,
  1158.                 int aboveBelow, Tk_Window other));
  1159. EXTERN Tk_RestrictProc *Tk_RestrictEvents _ANSI_ARGS_((Tk_RestrictProc *proc,
  1160.                 char *arg, char **prevArgPtr));
  1161. EXTERN char *        Tk_SetAppName _ANSI_ARGS_((Tk_Window tkwin,
  1162.                 char *name));
  1163. EXTERN void        Tk_SetBackgroundFromBorder _ANSI_ARGS_((
  1164.                 Tk_Window tkwin, Tk_3DBorder border));
  1165. EXTERN void        Tk_SetClass _ANSI_ARGS_((Tk_Window tkwin,
  1166.                 char *className));
  1167. EXTERN void        Tk_SetGrid _ANSI_ARGS_((Tk_Window tkwin,
  1168.                 int reqWidth, int reqHeight, int gridWidth,
  1169.                 int gridHeight));
  1170. EXTERN void        Tk_SetInternalBorder _ANSI_ARGS_((Tk_Window tkwin,
  1171.                 int width));
  1172. EXTERN void        Tk_SetWindowBackground _ANSI_ARGS_((Tk_Window tkwin,
  1173.                 unsigned long pixel));
  1174. EXTERN void        Tk_SetWindowBackgroundPixmap _ANSI_ARGS_((
  1175.                 Tk_Window tkwin, Pixmap pixmap));
  1176. EXTERN void        Tk_SetWindowBorder _ANSI_ARGS_((Tk_Window tkwin,
  1177.                 unsigned long pixel));
  1178. EXTERN void        Tk_SetWindowBorderWidth _ANSI_ARGS_((Tk_Window tkwin,
  1179.                 int width));
  1180. EXTERN void        Tk_SetWindowBorderPixmap _ANSI_ARGS_((Tk_Window tkwin,
  1181.                 Pixmap pixmap));
  1182. EXTERN void        Tk_SetWindowColormap _ANSI_ARGS_((Tk_Window tkwin,
  1183.                 Colormap colormap));
  1184. EXTERN int        Tk_SetWindowVisual _ANSI_ARGS_((Tk_Window tkwin,
  1185.                 Visual *visual, int depth,
  1186.                 Colormap colormap));
  1187. EXTERN void        Tk_SizeOfBitmap _ANSI_ARGS_((Display *display,
  1188.                 Pixmap bitmap, int *widthPtr,
  1189.                 int *heightPtr));
  1190. EXTERN void        Tk_SizeOfImage _ANSI_ARGS_((Tk_Image image,
  1191.                 int *widthPtr, int *heightPtr));
  1192. EXTERN void        Tk_Sleep _ANSI_ARGS_((int ms));
  1193. EXTERN int        Tk_StrictMotif _ANSI_ARGS_((Tk_Window tkwin));
  1194. EXTERN void        Tk_UndefineCursor _ANSI_ARGS_((Tk_Window window));
  1195. EXTERN void        Tk_Ungrab _ANSI_ARGS_((Tk_Window tkwin));
  1196. EXTERN void        Tk_UnmaintainGeometry _ANSI_ARGS_((Tk_Window slave,
  1197.                 Tk_Window master));
  1198. EXTERN void        Tk_UnmapWindow _ANSI_ARGS_((Tk_Window tkwin));
  1199. EXTERN void        Tk_UnsetGrid _ANSI_ARGS_((Tk_Window tkwin));
  1200.  
  1201.  
  1202. EXTERN int        tk_NumMainWindows;
  1203.  
  1204. /*
  1205.  * Tcl commands exported by Tk:
  1206.  */
  1207.  
  1208. EXTERN int        Tk_AfterCmd _ANSI_ARGS_((ClientData clientData,
  1209.                 Tcl_Interp *interp, int argc, char **argv));
  1210. EXTERN int        Tk_BellCmd _ANSI_ARGS_((ClientData clientData,
  1211.                 Tcl_Interp *interp, int argc, char **argv));
  1212. EXTERN int        Tk_BindCmd _ANSI_ARGS_((ClientData clientData,
  1213.                 Tcl_Interp *interp, int argc, char **argv));
  1214. EXTERN int        Tk_BindtagsCmd _ANSI_ARGS_((ClientData clientData,
  1215.                 Tcl_Interp *interp, int argc, char **argv));
  1216. EXTERN int        Tk_ButtonCmd _ANSI_ARGS_((ClientData clientData,
  1217.                 Tcl_Interp *interp, int argc, char **argv));
  1218. EXTERN int        Tk_CanvasCmd _ANSI_ARGS_((ClientData clientData,
  1219.                 Tcl_Interp *interp, int argc, char **argv));
  1220. EXTERN int        Tk_CheckbuttonCmd _ANSI_ARGS_((ClientData clientData,
  1221.                 Tcl_Interp *interp, int argc, char **argv));
  1222. EXTERN int        Tk_ClipboardCmd _ANSI_ARGS_((ClientData clientData,
  1223.                 Tcl_Interp *interp, int argc, char **argv));
  1224. EXTERN int        Tk_DestroyCmd _ANSI_ARGS_((ClientData clientData,
  1225.                 Tcl_Interp *interp, int argc, char **argv));
  1226. EXTERN int        Tk_EntryCmd _ANSI_ARGS_((ClientData clientData,
  1227.                 Tcl_Interp *interp, int argc, char **argv));
  1228. EXTERN int        Tk_ExitCmd _ANSI_ARGS_((ClientData clientData,
  1229.                 Tcl_Interp *interp, int argc, char **argv));
  1230. EXTERN int        Tk_FileeventCmd _ANSI_ARGS_((ClientData clientData,
  1231.                 Tcl_Interp *interp, int argc, char **argv));
  1232. EXTERN int        Tk_FrameCmd _ANSI_ARGS_((ClientData clientData,
  1233.                 Tcl_Interp *interp, int argc, char **argv));
  1234. EXTERN int        Tk_FocusCmd _ANSI_ARGS_((ClientData clientData,
  1235.                 Tcl_Interp *interp, int argc, char **argv));
  1236. EXTERN int        Tk_GrabCmd _ANSI_ARGS_((ClientData clientData,
  1237.                 Tcl_Interp *interp, int argc, char **argv));
  1238. EXTERN int        Tk_ImageCmd _ANSI_ARGS_((ClientData clientData,
  1239.                 Tcl_Interp *interp, int argc, char **argv));
  1240. EXTERN int        Tk_LabelCmd _ANSI_ARGS_((ClientData clientData,
  1241.                 Tcl_Interp *interp, int argc, char **argv));
  1242. EXTERN int        Tk_ListboxCmd _ANSI_ARGS_((ClientData clientData,
  1243.                 Tcl_Interp *interp, int argc, char **argv));
  1244. EXTERN int        Tk_LowerCmd _ANSI_ARGS_((ClientData clientData,
  1245.                 Tcl_Interp *interp, int argc, char **argv));
  1246. EXTERN int        Tk_MenuCmd _ANSI_ARGS_((ClientData clientData,
  1247.                 Tcl_Interp *interp, int argc, char **argv));
  1248. EXTERN int        Tk_MenubuttonCmd _ANSI_ARGS_((ClientData clientData,
  1249.                 Tcl_Interp *interp, int argc, char **argv));
  1250. EXTERN int        Tk_MessageCmd _ANSI_ARGS_((ClientData clientData,
  1251.                 Tcl_Interp *interp, int argc, char **argv));
  1252. EXTERN int        Tk_OptionCmd _ANSI_ARGS_((ClientData clientData,
  1253.                 Tcl_Interp *interp, int argc, char **argv));
  1254. EXTERN int        Tk_PackCmd _ANSI_ARGS_((ClientData clientData,
  1255.                 Tcl_Interp *interp, int argc, char **argv));
  1256. EXTERN int        Tk_PlaceCmd _ANSI_ARGS_((ClientData clientData,
  1257.                 Tcl_Interp *interp, int argc, char **argv));
  1258. EXTERN int        Tk_RadiobuttonCmd _ANSI_ARGS_((ClientData clientData,
  1259.                 Tcl_Interp *interp, int argc, char **argv));
  1260. EXTERN int        Tk_RaiseCmd _ANSI_ARGS_((ClientData clientData,
  1261.                 Tcl_Interp *interp, int argc, char **argv));
  1262. EXTERN int        Tk_ScaleCmd _ANSI_ARGS_((ClientData clientData,
  1263.                 Tcl_Interp *interp, int argc, char **argv));
  1264. EXTERN int        Tk_ScrollbarCmd _ANSI_ARGS_((ClientData clientData,
  1265.                 Tcl_Interp *interp, int argc, char **argv));
  1266. EXTERN int        Tk_SelectionCmd _ANSI_ARGS_((ClientData clientData,
  1267.                 Tcl_Interp *interp, int argc, char **argv));
  1268. EXTERN int        Tk_SendCmd _ANSI_ARGS_((ClientData clientData,
  1269.                 Tcl_Interp *interp, int argc, char **argv));
  1270. EXTERN int        Tk_TextCmd _ANSI_ARGS_((ClientData clientData,
  1271.                 Tcl_Interp *interp, int argc, char **argv));
  1272. EXTERN int        Tk_TkCmd _ANSI_ARGS_((ClientData clientData,
  1273.                 Tcl_Interp *interp, int argc, char **argv));
  1274. EXTERN int        Tk_TkwaitCmd _ANSI_ARGS_((ClientData clientData,
  1275.                 Tcl_Interp *interp, int argc, char **argv));
  1276. EXTERN int        Tk_UpdateCmd _ANSI_ARGS_((ClientData clientData,
  1277.                 Tcl_Interp *interp, int argc, char **argv));
  1278. EXTERN int        Tk_WinfoCmd _ANSI_ARGS_((ClientData clientData,
  1279.                 Tcl_Interp *interp, int argc, char **argv));
  1280. EXTERN int        Tk_WmCmd _ANSI_ARGS_((ClientData clientData,
  1281.                 Tcl_Interp *interp, int argc, char **argv));
  1282.  
  1283. #endif /* _TK */
  1284.